package org.dyndns.opendemogroup.optimizer;

/**
 * Represents the various events raised by optimization engines.
 */
public interface OptimizationListener
{
	void startRun ( OptimizationEvent e );

	void startGeneration ( OptimizationEvent e );

	void startOperations ( OptimizationEvent e );

	void performOperation ( OptimizationEvent e );

	void finishOperations ( OptimizationEvent e );

	void startFitnessComputations ( OptimizationEvent e );

	void performFitnessComputation ( OptimizationEvent e );

	void finishFitnessComputations ( OptimizationEvent e );

	void startPopulationSort ( OptimizationEvent e );

	void finishPopulationSort ( OptimizationEvent e );

	void finishGeneration ( OptimizationEvent e );

	void finishRun ( OptimizationEvent e );

}
